#include <STC15F2K60S2.H>

//#define KEY_TEST

unsigned char key_old;	//前一次按键状态值
unsigned char keyNum=0;	//全局变量，保存数码管显示值

// 数码管段位数字编码
char code segTab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
					0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};


int main(void)
{
	//P3M0 P3M1 //为准双向口
	P32 = 1;		//读取按键前，需把按键状态输出1
	P33 = 1;
	
// 独立按键测试
#ifdef KEY_TEST		//
	while(1)
	{
		if(P32 == 0)
		{
			P00 = 0;
		}
		else
		{
			P00 = 1;
		}
		
		if(P33 == 0)
		{
			P01 = 0;
		}
		else
		{
			P01 = 1;
		}
	}
#endif
	
// 按键与数码管显示测试
	while(1)
	{
		unsigned char nKey=0;					// 定义保存当前按键值的变量
		nKey = P32;								// 读取P3.2管脚电平状态
		if(nKey != key_old  && nKey == 0)	    // 按键有变化，并且为按下动作
		//if( nKey == 0)
		{	
			keyNum ++;							// 按键计数值加一
			if(keyNum >= 16) keyNum = 0;		// 限定按键计数值不大于16
			P4 = segTab[keyNum];				// 将按键计数值通过数码管译码后显示
		}
		key_old = nKey;						   // 更新保存前一次按键值变量
		
  }
	
	return 0;
}
